package com.golang.api.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.golang.api.common.domain.PageDTO;
import com.golang.api.domain.Activity;
import com.golang.api.dto.request.ActivityBasicDto;
import com.golang.api.dto.request.ActivitySearchDto;
import com.golang.api.dto.request.ActivitySettingDto;
import com.golang.api.dto.response.ActivityBasicRespDto;
import com.golang.api.dto.response.ActivityDetailDto;
import com.golang.api.dto.response.ActivityListRespDto;
import com.golang.api.dto.response.ActivitySettingRespDto;
import com.golang.api.function.ActivityFunction;
import com.golang.api.util.Result;

import java.util.List;


/**
 * 活动Service接口
 *
 * @author ruoyi
 * @date 2025-01-12
 */
public interface IActivityService extends ActivityFunction {


    Result<PageDTO<ActivityListRespDto>> list(ActivitySearchDto query);

    Result<String> createBasic(ActivityBasicDto basic) throws JsonProcessingException;


    Result<ActivityBasicRespDto> getBasic(String activityId);

    Boolean createSetting(ActivitySettingDto setting) throws JsonProcessingException;

    Result<Boolean> release(ActivitySettingDto setting) throws JsonProcessingException;

    Result<ActivitySettingRespDto> getSetting(String activityId);

    Result<ActivityDetailDto> info(String activityId);

    Result<String> copyHistory(String activityId);

    Result<Boolean> cancel(String activityId);

    Result<List<ActivityDetailDto>> recommend();


}
